import request from '@/utils/request'
import { CategoryQuery, CategoryVO, CategoryForm } from './types'
import { AxiosPromise } from 'axios'

/**
 * 查询分类列表
 * @param query 查询参数
 * @returns 分类列表
 */
export function listCategory(query: CategoryQuery): AxiosPromise<CategoryVO[]> {
    return request({
        url: '/product/category/list',
        method: 'get',
        params: query
    })
}

/**
 * 获取分类树结构
 * @returns 分类树
 */
export function getCategoryTree(): AxiosPromise<CategoryVO[]> {
    return request({
        url: '/product/category/tree',
        method: 'get'
    })
}

/**
 * 获取分类详细信息
 * @param id 分类ID
 * @returns 分类信息
 */
export function getCategory(id: number): AxiosPromise<CategoryVO> {
    return request({
        url: `/product/category/${id}`,
        method: 'get'
    })
}

/**
 * 新增分类
 * @param data 分类信息
 * @returns 结果
 */
export function addCategory(data: CategoryForm) {
    return request({
        url: '/product/category',
        method: 'post',
        data: data
    })
}

/**
 * 修改分类
 * @param data 分类信息
 * @returns 结果
 */
export function updateCategory(data: CategoryForm) {
    return request({
        url: '/product/category',
        method: 'put',
        data: data
    })
}

/**
 * 删除分类
 * @param id 分类ID
 * @returns 结果
 */
export function delCategory(id: number) {
    return request({
        url: `/product/category/${id}`,
        method: 'delete'
    })
}

/**
 * 批量删除分类
 * @param ids 分类ID数组
 * @returns 结果
 */
export function delCategoryBatch(ids: number[]) {
    return request({
        url: '/product/category/batch',
        method: 'delete',
        data: ids
    })
} 